(function(){
	_userSearchForm = Ext.extend(Ext.FormPanel,{
		constructor : function(cfg){
			if(cfg==null){
				cfg={};
			}
			Ext.apply(this,cfg);
			_userSearchForm.superclass.constructor.call(this,{
				height : 120,
				title  : '查询条件',
				title : '<span style="font-weight:normal">查询条件<span>',
				collapsible : true,
				border : true,
				labelWidth : 90, // 标签宽度
				// frame : true, //是否渲染表单面板背景色
				labelAlign : 'right', // 标签对齐方式
				bodyStyle : 'padding:3 5 0', // 表单元素和表单面板的边距
				buttonAlign : 'center',
				
				items : [{
					layout : 'column',
					border : false,
					items : [{
						columnWidth : .33,
						layout : 'form',
						labelWidth : 60, // 标签宽度
						border : false,
						defaultType : 'textfield',
						items : [{
							anchor : '98%',
							name : 'name',
							fieldLabel : '姓名'
						},{
							anchor : '98%',
							name : 'pw',
							fieldLabel : '密码'
						}]
					},{
						columnWidth : .33,
						layout : 'form',
						labelWidth : 60,
						border : false,
						defaultType : 'textfield',
						items : [{
							anchor : '98%',
							name : 'sex',
							fieldLabel : '性别'
						}]
					}]
				}],
				buttons : [{
					iconCls : 'btnSearch',
					text : '查询'
				},{
					iconCls : 'btnReset',
					text : '清空',
					handler : function(){
						this.form.reset();
					},
					scope : this
				}]
			
			});
			
		}
	});
	_userGrid = Ext.extend(Ext.grid.GridPanel,{
		viewConfig : {
			forceFit : true
		},
		constructor : function(config){
			Ext.apply(this,config);
			this.sm = new Ext.grid.CheckboxSelectionModel({
				
			});
			this.cm = new Ext.grid.ColumnModel([
				this.sm,
				new Ext.grid.RowNumberer({
						header : '序号',
						width :  45,
						scope : this,
						renderer : function(value,metadata,record,rowIndex){
							return this.store.lastOptions.params.start+1+rowIndex;
						}
				}),
				{id : 'id' , header : 'ID',dataIndex : 'id', sortable:true,hidden : true},
				{header: '登录账户',dataIndex : 'userName', sortable :true},
				{header: '登录密码',dataIndex : 'userPassword' ,sortable : true},
				{header: '创建时间',dataIndex : 'crDate' ,sortable : true}
			]);
			this.tbar = {
				xtype : 'toolbar',
				items : [{
					iconCls: 'btnAdd',
					text : '新增',
					handler : this.addUser,
					scope : this
				},'-',{
					iconCls: 'btnModify',
					text : '修改',
					handler : this.modUser,
					scope : this
				},'-',{
					iconCls: 'btnDelete',
					text : '删除',
					handler : this.delUser,
					scope : this
				}]
			};
			this.store = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
					url : 'user/user_queryAll.action'
				}),
				reader : new Ext.data.JsonReader({
					totalProperty : 'totalProperty',
					root : 'root',
					id : 'id'
				},[{
					name : 'id', mapping : 'id'
				},{
					name : 'userName' , mapping : 'userName'
				},{
					name : 'userPassword' , mapping : 'userPassword'
				},{
					name : 'crDate' , mapping : 'crDate'
				}])
			});
			this.store.load({params :{start :basicConstant.START,limit : basicConstant.LIMIT}});
			this.plugins = new Ext.ux.PanelResizer({
				//minHeight : 100
			});
			this.bbar = new Ext.PagingToolbar({
				pageSize : basicConstant.PAGESIZE,
				store : this.store,
				displayInfo : true,
				plugins: new Ext.ux.plugins.PageComboResizer(),
				displayMsg : '显示第{0}条到 {1}条记录,共{2}条',
				emptyMsg : '没有记录'
			});
			_userGrid.superclass.constructor.call(this);
		},
		delUser :function(){

		},
		modUser : function(){
		
		},
		addUser : function(){
			userForm.show();
		}
	});
	var userForm = new Ext.ux.WindowForm({
		labelWidth : 75,
		frame : true,
		width : 400,
		url : 'user/user_add.action',
		title : '人员新增',
		scope : this,
		border : false,
		layout : 'form',
		bodyStyle : "padding-top:10px",  
		defaults : {
			anchor : '95%'
		},
		items : [{
			fieldLabel  : '人员名称',
			name : 'user.userInfo.name',
			allowBlank : false
		},{
			fieldLabel : '所属部门',
			name : 'user.deptId'
		},{
			fieldLabel : '登录账户',
			name : 'user.userName'
		},{
			fieldLabel : '密码',
			name : 'user.passWord'
		},{
			fieldLabel : '确认密码',
			name : 'user.confirmPassword'
		},{
			fieldLabel : '人员类型',
			name : 'user.type'
		},{
			fieldLabel : '人员状态',
			name : 'user.status'
		},{
			fieldLabel : '性别',
			name : 'user.userInfo.sex',
			xtype : 'combo',
			typeAhead : true,
			triggerAction : 'all',
			mode : 'local',
			valueField : 'value',
			displayField : 'name',
			store : new Ext.data.SimpleStore({
				fields : ['value','name'],
				data : [['0','未知'],['1','男'],['2','女']]
			})
		},{
			fieldLabel : '备注',
			name : 'user.remark'
		}],
		buttons : [{
			text : '新增',
			scope : this,
			handler : function(){
			if(userForm.getForm().isValid())
			userForm.submit({
						url : 'system/user_add.action',
						waitTitle : '请稍等...',
						waitMsg:'正在保存数据,请稍后...',
						success : function(form,action){
							Ext.MessageBox.alert('系统提示','您操作成功！');
							userForm.hide();
						},
						failure : function(form,action){
							Ext.MessageBox.alert('系统提示','<font color=black>与后台联系失败,请联系管理员...</font>');
						}
					});
									
			}
		},{
			text : '取消',
			scope : this,
			handler : function(){
				userForm.hide();
			}
		}]
	});
	var orgnTree = new Ext.tree.TreePanel({
		region : 'west',
		width : 200,
		title : '组织机构',
		autoScroll : true,
		collapsible : true,
		//enableAllCheck : true,
		loader : new Ext.tree.TreeLoader({
			url : 'json/navigation.json'
		}),
		rootVisible : false,
		root : new Ext.tree.AsyncTreeNode({
			expanded : true,
			text : 'root'
		}),
		listeners : {
			'contextmenu':function(node,e){
				e.preventDefault();
				var _menu = new Ext.menu.Menu([
				{
				text : '添加节点',handler:function(){alert(node.id)}
				},{
				text : '修改节点' ,pressed : false ,handler : function(){alert(node.id);}
				},{
				text : '删除节点' ,pressed : false ,handler : function(){}}
				],{
				text : '配置权限',handler:function(){}
				});
				_menu.showAt(e.getXY());
			}
		}
	});
	return new Ext.Panel({
		draggable : false,
		closable : true,
		layout : 'border',
		items : [orgnTree,new _userSearchForm({region:'north'}), new _userGrid({region: 'center'})]
	});
})()